package com.wtb.javatool.service;

import com.wtb.javatool.common.R;
import com.wtb.javatool.dto.CourseDto;
import com.wtb.javatool.entity.Course;
import com.wtb.javatool.common.PageBean;


import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface CourseService {
    PageBean<CourseDto> findCoursesByUserId(Long userId,String courseName, Integer currentPage, Integer pageSize);

    List<Course> findCourse(Long courseId, String courseName);
    
    /**
     * 获取所有课程列表
     * @return 所有课程列表
     */
    List<Course> findAllCourses();
    
    /**
     * 创建新课程
     * 
     * @param course 课程信息
     * @param userId 创建者用户ID
     * @param projectIds 关联的项目ID列表
     * @return 创建的课程ID
     */
    Long createCourse(Course course, Long userId, List<Long> projectIds);
    
    /**
     * 更新课程信息
     * 
     * @param course 课程信息
     * @param projectIds 关联的项目ID列表
     * @return 是否更新成功
     */
    boolean updateCourse(Course course, List<Long> projectIds);
    
    /**
     * 删除课程
     * 
     * @param courseId 课程ID
     * @return 是否删除成功
     */
    boolean deleteCourse(Long courseId);
    
    /**
     * 检查课程与教师的关联关系是否已存在
     * 
     * @param courseId 课程ID
     * @param userId 用户ID
     * @return 关联关系是否存在
     */
    boolean checkCourseTeacherRefExists(Long courseId, Long userId);
    
    /**
     * 添加课程与教师的关联关系
     * 
     * @param courseId 课程ID
     * @param userId 用户ID
     * @return 是否添加成功
     */
    boolean insertCourseTeacherRef(Long courseId, Long userId);
}
